package 引用类型;

public class Integer测试 {
    //定义成员变量
    static Integer i0;//需要写static因为静态只能调用静态
    public static void main(String[] args) {
        System.out.println(i0);//打印null,因为是引用类型
        //3.创建int类型对应包装类型Integer方式一
        Integer i1= new Integer(5);
        Integer i11= new Integer(5);
        System.out.println(i1==i11);//false,==比较地址值
        Integer i2=Integer.valueOf(127);//高效的方法
        Integer i3=Integer.valueOf(127);//高效范围-128~127
        System.out.println(i1==i2);//false,比较的是地址值
        System.out.println(i2==i3);//true,Integer在范围内有高效效果
       Integer i4=Integer.valueOf(300);
       Integer i5=Integer.valueOf(300);
        System.out.println(i4==i5);//false,超出Integer高效范围

        Double d1=new Double(3.14);
        Double d2=Double.valueOf(3.14);//属于自动装箱
        Double d3=Double.valueOf(3.14);
        System.out.println(d1==d2);//falde比较的是地址值因为valueOf和new是一个意思
        //只有Integer有高效的效果
        System.out.println(d2==d3);//false
        //测试常用的方法
        /**
         *原因:parseInt()已经把字符串800转成了int类型的800,所以是运算而不是拼接
         */
        System.out.println(i1.parseInt("800")+10);
        System.out.println(d1.parseDouble("2.2")+10);//3.2是加法运算
        //自动装箱和自动拆箱测试
        //自动装箱
        //1.定义包装类型的数据
        Integer a=5;//这是 现在的包装类型
        Integer as=new Integer(5);//这两个都是以前的包装方式
        Integer asd=Integer.valueOf(5);

        Integer i=5;//自动装箱
        int aw=i;//不会报错因为自动拆箱

        System.out.println(aw);


    }
}
